package dbTools.db.writer;

import java.util.Map;

import projectsupporter.common.control.Path;
import dbTools.tableInfo.info.TableInfo;

/**
 * SQL生成器接口 <br />
 * 对不同的数据库，做不同的实现。
 * 
 * @author liaobj
 *
 */
public interface ISQLWriter {

	/**
	 * 根据单个表的定义生成单个DB脚本文件。
	 * @param tableInfo 表定义信息
	 * @param mainPath 路径信息
	 * @return true：成功  false：失败
	 */
	public boolean createSingleTableScript(TableInfo tableInfo,Path mainPath);
	
	/**
	 * 
	 * @param tableInfos 表定义信息字典
	 * @param mainPath 路径信息
	 * @param isFileByTable 是否一个表生成一个文件
	 * @return true：成功  false：失败
	 */
	public boolean createTablesScript(Map<String,TableInfo> tableInfos,Path mainPath,boolean isFileByTable);
	
	/**
	 * 获取表的create语句
	 * @param tableInfo 表定义信息
	 * @return 表的create语句
	 */
	public String getTableCreateSQL(TableInfo tableInfo);
	
	/**
	 * 获取DB的create语句
	 * @param tableInfos 表定义信息字典
	 * @return 表的create语句
	 */
	public String getDBCreateSQL(Map<String,TableInfo> tableInfos);
}
